home *** CD-ROM | disk | FTP | other *** search
- typedef char * Buffer;
-
- void Buffer_initialize(char ** pointer);
- int Buffer_allocate(char ** pointer, size_t size,
- char * name);
- void Buffer_terminate(char ** pointer);
-
- int some_function(void)
- {
- Buffer buffer1, buffer2;
- int ret1, ret2;
-
- Buffer_initialize(&buffer1);
- Buffer_initialize(&buffer2);
-
- if (Buffer_allocate(&buffer1, 1024, "buffer1")
- == SUCCESS
- && Buffer_allocate(&buffer2, 1024, "buffer2")
- == SUCCESS)
- {
- /* Do whatever processing is required. */
- }
- Buffer_terminate(&buffer1);
- Buffer_terminate(&buffer2);
- }
-
- void Buffer_initialize(Buffer * buffer)
- {
- *buffer = NULL:
- return;
- }
-
- int Buffer_allocate(Buffer * pointer, size_t size,
- char * name)
- {
- int return_code = SUCCESS;
- *pointer = malloc(size);
- if (*pointer == NULL)
- {
-
- fprintf(stderr, "Allocation failure for %s size %d",
- name, size);
- return_code = FAILUE;
- }
- return return_code;
- }
-
- void Buffer_terminate(Buffer * pointer)
- {
- if (*pointer != NULL)
- {
- free(*pointer);
- *pointer = NULL;
- }
- return;
- }
-
-
-